/**
 * 需求描述：
 * 程序运行，利用随机数生成生成一个长度为20的正整型数组。然后等待用户输入要查找的数字。
 * 1. 如果数组中包含用户输入数字，提示用户数字所在数组下标位置
 * 2. 如果数组中不包含用户输入数字，提示用户数据不存在
 * 3. 用户可以一直进行输入数字，如果用户输入-1，程序停止运行
 */
import java.util.Arrays;
import java.util.Scanner;
import java.util.Random;
public class Test1 {
    public static void main(String[] args) {
        // 1. 生成长度为20的随机正整型数组
        int[] numbers = generateRandomArray(20);
        System.out.println("已生成随机数组：");
        printArray(numbers);
//        System.out.println(Arrays.toString(numbers));

        // 2. 创建Scanner对象读取用户输入
        Scanner scanner = new Scanner(System.in);

        while (true) {
            // 3. 提示用户输入要查找的数字
            System.out.print("请输入要查找的数字(输入-1退出程序): ");

            // 4. 读取用户输入
            int input;
            try {
                input = scanner.nextInt();
            } catch (Exception e) {
                System.out.println("输入无效，请输入一个整数！");
                scanner.next(); // 清除无效输入
                continue;
            }

            // 5. 检查是否退出程序
            if (input == -1) {
                System.out.println("程序已退出。");
                break;
            }

            // 6. 在数组中查找数字
            boolean found = false;
            for (int i = 0; i < numbers.length; i++) {
                if (numbers[i] == input) {
                    System.out.println("数字 " + input + " 存在于数组中，下标位置: " + i);
                    found = true;
                }
            }

            // 7. 如果未找到数字
            if (!found) {
                System.out.println("数字 " + input + " 不存在于数组中。");
            }
        }

        // 8. 关闭Scanner
        scanner.close();
    }

    // 生成随机数组的方法
    private static int[] generateRandomArray(int length) {
        Random random = new Random();
        int[] array = new int[length];
        for (int i = 0; i < length; i++) {
            array[i] = random.nextInt(100) + 1; // 生成1-100的随机数
        }
        return array;
    }

    // 打印数组的方法
    private static void printArray(int[] array) {
        for (int i : array) {
            System.out.print(i+" ");
        }
        System.out.println();
    }
}